package com.ibm.framework.page;

/**
 * 查询参数基类
 * 
 * @author Johnny
 * 
 * @param <T> 查询的对象类型
 */
public class QueryParam<T> {
    /**
     * 页数
     */
    private int pageNumber = 1;
    /**
     * 每页显示的条数
     */
    private int pageSize = 10;
    /**
     * 排序
     */
    private String orderBy;

    /**
     * 增序排列
     */
    private boolean orderAsc;

    /**
     * 是否统计总数
     */
    private boolean needCount = true;

    /**
     * 查询参数
     */
    private T queryParam;

    /**
     * 要查询的页码，从1开始
     * 
     * @return the pageNumber
     */
    public int getPageNumber() {
        return pageNumber;
    }

    /**
     * @param pageNumber the pageNumber to set
     */
    public void setPageNumber(int pageNumber) {
        this.pageNumber = pageNumber;
    }

    /**
     * 页面大小，缺省为每页10行
     * 
     * @return the pageSize
     */
    public int getPageSize() {
        return pageSize;
    }

    /**
     * @param pageSize the pageSize to set
     */
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    /**
     * 是否需要返回总记录数
     * 
     * @return the needCount
     */
    public boolean isNeedCount() {
        return needCount;
    }

    /**
     * @param needCount the needCount to set
     */
    public void setNeedCount(boolean needCount) {
        this.needCount = needCount;
    }

    /**
     * 获取排序原则
     * 
     * @return 排序原则
     */
    public String getOrderBy() {
        return orderBy;
    }

    /**
     * 设置排序原则
     * 
     * @param orderBy 设置排序原则
     */
    public void setOrderBy(String orderBy) {
        this.orderBy = orderBy;
    }

    /**
     * 判别是否是增序排列
     * 
     * @return 增序排列
     */
    public boolean isOrderAsc() {
        return orderAsc;
    }

    /**
     * 设置增序排列
     * 
     * @param orderAsc 增序排列
     */
    public void setOrderAsc(boolean orderAsc) {
        this.orderAsc = orderAsc;
    }

    /**
     * 获取查询参数
     * 
     * @return 查询参数
     */
    public T getQueryParam() {
        return queryParam;
    }

    /**
     * 设置查询参数
     * 
     * @param queryParam 查询参数
     */
    public void setQueryParam(T queryParam) {
        this.queryParam = queryParam;
    }

}
